//package com.ant.storage.controller;
//
//import com.ant.storage.common.ResultVo;
//import com.ant.storage.utils.WebsocketUtil;
//import org.springframework.stereotype.Component;
//
//import javax.websocket.*;
//import javax.websocket.server.ServerEndpoint;
//import java.io.IOException;
//
///**
// * @author hzd
// * @version 1.0
// * @date 2023/4/27 10:02
// */
//@Component
//@ServerEndpoint(value = "/verifyDevice")
//public class WebsocketController {
//
//    /**
//     * 连接事件，加入注解
//     *
//     * @param session
//     */
//    @OnOpen
//    public void onOpen(Session session) {
//        String deviceId = WebsocketUtil.getParam(WebsocketUtil.sessionKey, session);
//        // 添加到session的映射关系中
//        WebsocketUtil.addSession(deviceId, session);
//        //获取链接的设备信息
//        DeviceChannelContext deviceChannelContext = ChannelFactory.getChannelBySerialNo(deviceId);
//        //判断是否存在人脸验证设备与服务器 socket的链接
//        if (deviceChannelContext != null && (!deviceChannelContext.getCtx().isRemoved())) {
//            //已连接
//            WebsocketUtil.sendMessage(deviceId, ResultVo.success("ok"));
//        } else {
//            //未连接
//            WebsocketUtil.sendMessage(deviceId, ResultVo.success("no"));
//        }
//    }
//
//    /**
//     * 连接事件，加入注解
//     * 用户断开链接
//     *
//     * @param session
//     */
//    @OnClose
//    public void onClose(Session session) {
//        String deviceId = WebsocketUtil.getParam(WebsocketUtil.sessionKey, session);
//        // 删除映射关系
//        WebsocketUtil.removeSession(deviceId);
//    }
//
//    /**
//     * 当接收到用户上传的消息
//     *
//     * @param session
//     */
//    @OnMessage
//    public void onMessage(Session session, String message) {
//        System.out.println(message);
//        //        Map map = session.getRequestParameterMap();
//        //        String userId = map.get(WebsocketUtil.sessionKey) == null ? null : map.get(WebsocketUtil.sessionKey).toString();
//    }
//
//    /**
//     * 处理用户活连接异常
//     *
//     * @param session
//     * @param throwable
//     */
//    @OnError
//    public void onError(Session session, Throwable throwable) {
//        try {
//            if (session.isOpen()) {
//                session.close();
//            }
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        throwable.printStackTrace();
//    }
//
//}
//
